3.10 [UserExtensions] Sections

These are optional sections.

Summary

Defines the optional EDK II INF file [UserExtensions] section tag. The build tools must have an a priori knowledge of how to process any items in this section.

Each UserExtensions section must have a unique set of UserId, IdString and Arch values.

The "common" architecture modifier in a section tag must not be combined with other architecture type; doing so will result in a build break.

This means that the same UserId can be used in more than one section, provided the IdString or Arch values are different. The same IdString values can be used if the UserId or Arch values are different. The same UserId and the same IdString can be used if the Arch values are different.

Any [UserExtensions] sections that are present in the source INF with a UserId of "TianoCore" will be copied into the "As Built" INF file. [UserExtensions] sections with other UserId values will not be copied to the "As Built" INF file.

Files listed in a [UserExtensions.TianoCore."ExtraFiles"] section must be included in a UEFI Distribution Package.

<UserExtensions> ::= "[UserExtensions" <com_attribs> "]" <EOL>
                     <statements>*
<com_attribs>    ::= {<com_arch>} {<attribs>}
<com_arch>       ::= <IdContent> [".common"]
<attribs>        ::= <IdContent> ["," <TS> "UserExtensions"
                     <IdContent>]*
<IdContent>      ::= <UserId> <IdString> [<attrs>]
<attrs>          ::= "." <arch>
<UserId>         ::= "." {(a-zA-Z)(a-zA-Z0-9_.)*} {"TianoCore"}
<IdString>       ::= "." {<NormalizedString>} {<SimpleWord>}
                     {<ReservedWord>}
<ReservedWord>   ::= {"PRE_PROCESS"} {"POST_PROCESS"}
                     {"ExtraFiles"}
<statements>     ::= Content is build tool chain specific.

Parameters

UserId

Words that contain period "." must be encapsulated in double quotation marks.

IdString

Normalized strings that contain period "." or space characters must be encapsulated in double quotation marks. The IdString must start with a letter.

Example

[UserExtensions.Edk2AcpiTable."1.0"]
   Any content may go here

3.10.1 [UserExtensions.TianoCore."ExtraFiles"] Section

This is an optional section.

Defines the optional EDK II INF file [UserExtensions.TianoCore."ExtraFiles"] section tag. The EDK II build tools must not process any files listed in this section.

Summary

This section is used by the Intel(R) UEFI Packaging Tool, that is distributed as part of the EDK II BaseTools, to locate files listed under this section header and add them to the UEFI distribution package. When installing a UEFI distribution package, these files will be installed in the module's directory tree.

Prototype

<UserExtensions> ::= "[UserExtensions" <TcEf> "]" <EOL> <FileNames>*
<TcEf>           ::= ".TianoCore." <DblQuote> "ExtraFiles" <DblQuote>
<FileNames>      ::= <TS> [<RelativePath>] <File> <EOL>

Parameters

FileNames

Paths listed in the filename elements of the this section must be relative to the directory the INF file resides in. Use of "..", "." and "../" in the directory path is not permitted.

Example

[UserExtensions.TianoCore."ExtraFiles"]
  Readme.txt